<!-- 系统信息和更新检测 -->
<template>
	<view style="width: 100vw;height: 100vh; background-color: #fff;">
		<newNavBar></newNavBar>
		<view class="chartsItem" style="">
			<!-- <qiun-title-bar :color="mainColor" title="生产日报" /> -->
			<view class="charts-box" style="padding-top: 20px;">
				<qiun-data-charts type="gauge" :optsWatch="false" :opts="gaugeOpts" :chartData="ringData" />
			</view>


			<view style="display: flex;flex-direction: row; justify-content: center; padding-bottom: 10px;">
				<text>{{updateInfo}}</text>
				<uni-badge v-if="isNew" :absolute="true" :isDot="true" type="error" :offset="[-10, 11]" text="1">
				</uni-badge>
			</view>
		</view>

		<view style="padding: 10px;">
			<button :style="{borderRadius: '40px', backgroundColor:mainColor,color: '#fff'}" type="primary"
				@click="updateSystem">检测更新</button>
		</view>

		<uni-popup ref="alertDialog" type="dialog">
			<comm-dialog></comm-dialog>
		</uni-popup>
	</view>
</template>

<script>
	import * as defaultData from '../../common/defaultData.js'
	import * as SystemJs from '../../common/system.js'
	import commDialog from '../unit/commonDiaog.vue'
	import * as configJs from '../../common/config.js'
	export default {
		//声明引用的vue公用组件
		components: {
			commDialog
		},
		data() {
			return {
				mainColor: '',
				chartsData: {},
				lineColor: [],
				ringTitle: {},
				pageScrollTop: 0,
				versionName: '',
				updateInfo: '',
				gaugeOpts: {},
				ringData: {},
				isNew: false
			}
		},
		onLoad(res) {
			this.versionName = res.versionName;
			this.gaugeOpts = {
				update: true,
				duration: 1000,
				title: {
					name: ''
				},
				subtitle: {
					name: res.versionName,
					fontSize: 25,
					color: '#2fc25b',
					offsetY: 0
				},
				extra: {
					gauge: {
						type: 'progress',
						width: 20,
						splitLine: {
							fixRadius: -5,
							width: 15,
							childNumber: 5
						}
					}
				}
			}
			this.mainColor = configJs.baseColor.mainTitleColor;
			SystemJs.systemJs.showTitleBar('系统和更新', true)
			this.ringData = {
				categories: [{
					"value": 0.2,
					"color": "#ff0000"
				}, {
					"value": 0.8,
					"color": "#2fc25b"
				}, {
					"value": 1,
					"color": "#f04864"
				}],
				series: [{
					name: "完成率",
					data: 0.8,
					color: "#1890FF"
				}]
			};
			this.updateInfo = '当前为最新版本'
			this.isNew = false
			this.getSystemInfo();
		},

		methods: {
			updateSystem() {
				// #ifdef APP-PLUS
				// 获取本地应用资源版本号
				plus.runtime.getProperty(plus.runtime.appid, (inf) => {
					console.log(inf)
					SystemJs.baseInfo.getDeviceInfo()
					var uuid = uni.getStorageSync('uuid')
					let data = {
						appCode: uuid,
						edition_type: plus.runtime.appid,
						version_type: uni.getSystemInfoSync().platform, //android或者ios
						versionCode: inf.versionCode, // 打包时manifest设置的版本号
						appVersion: inf.version, // 打包时manifest设置的版本名称
					}

					var timeOut = setTimeout(() => {
						if (this.ringData.series[0].data == 0.8) {
							this.ringData.series[0].data = 0.81;
						} else {
							this.ringData.series[0].data = 0.8;
						}
						clearTimeout(timeOut)
					}, 500)

					//获取服务器的版本号
					uni.request({
						url: SystemJs.httpUnit.getBaseUrl('/App/UpdateEditionApp'), //示例接口
						method: 'POST',
						data: data,
						success: (res) => {
							console.log(res)

							if (res.data.Result) {
								//res.data.xxx根据后台返回的数据决定（我这里后端返回的是data），所以是res.data.data 
								//判断后台返回版本号是否大于当前应用版本号 && 是否发行 （上架应用市场时一定不能弹出更新提示）
								var data = res.data.Data
								if (data != undefined && Number(data.edition_number) > Number(inf.versionCode) && data.edition_issue == 1) {
									this.updateInfo = '发现新版本'
									this.isNew = true
									this.ringData.series[0].color = "#f04864"
									//如果是wgt升级，并且是静默更新 （注意！！！ 如果是手动检查新版本，就不用判断静默更新，请直接跳转更新页，不然点击检查新版本后会没反应）
									// if (data.package_type == 1 && data.edition_silence ==
									// 	1) {

									// 	//调用静默更新方法 传入下载地址
									// 	silenceUpdate(data.edition_url)
									// } else {
									var timeOut = setTimeout(() => {
										//跳转更新页面 （注意！！！如果pages.json第一页的代码里有一打开就跳转其他页面的操作，下面这行代码最好写在setTimeout里面设置延时3到5秒再执行）
										uni.navigateTo({
											url: '/uni_modules/rt-uni-update/components/rt-uni-update/rt-uni-update?obj=' +
												JSON.stringify(data)
										});
										clearTimeout(timeOut)
									}, 500)
									// }
								} else {
									this.updateInfo = '当前为最新版本'
									this.isNew = false
									this.ringData.series[0].color = "#1890FF"
									// // 如果是手动检查新版本 需开启以下注释
									// var obj = SystemJs.showDialog.dialogInfo
									// obj.msgType = "warn";
									// obj.title = "提示";
									// obj.content = "已经是最新版本";
									// obj.cancel = false;
									// obj.confirm = true;
									// obj.dialogConfirm(() => {
									// 	// plus.runtime.quit();
									// })
									// obj.dialogClose(() => {

									// })
									// SystemJs.showDialog.openDialog(this.$refs.alertDialog, obj)
								}
							} else {
								console.log(res.data.Message)
								SystemJs.httpUnit.uniToast(res.data.Message)
							}
						},
						fail: (res) => {
							console.log(res)
							SystemJs.httpUnit.uniToast(res)
						}
					})
				});
				// #endif
			},
			getSystemInfo() {
				// #ifdef APP-PLUS
				// 获取本地应用资源版本号
				plus.runtime.getProperty(plus.runtime.appid, (inf) => {
					console.log(inf)
					SystemJs.baseInfo.getDeviceInfo()
					var uuid = uni.getStorageSync('uuid')
					let data = {
						appCode: uuid,
						edition_type: plus.runtime.appid,
						version_type: uni.getSystemInfoSync().platform, //android或者ios
						versionCode: inf.versionCode, // 打包时manifest设置的版本号
						appVersion: inf.version, // 打包时manifest设置的版本名称
					}

					//获取服务器的版本号
					uni.request({
						url: SystemJs.httpUnit.getBaseUrl('/App/UpdateEditionApp'), //示例接口
						method: 'POST',
						data: data,
						success: (res) => {
							console.log(res)
							if (res.data.Result) {
								//res.data.xxx根据后台返回的数据决定（我这里后端返回的是data），所以是res.data.data 
								//判断后台返回版本号是否大于当前应用版本号 && 是否发行 （上架应用市场时一定不能弹出更新提示）
								var data = res.data.Data
								if (data != undefined && Number(data.edition_number) > Number(
										inf
										.versionCode) && data.edition_issue == 1) {
									this.updateInfo = '发现新版本'
									this.isNew = true
									this.ringData.series[0].color = "#f04864"
								} else {
									this.updateInfo = '当前为最新版本'
									this.isNew = false
									this.ringData.series[0].color = "#1890FF"
								}
							} else {
								console.log(res.data.Message)
								SystemJs.httpUnit.uniToast(res.data.Message)
							}
						},
						fail: (res) => {
							console.log(res)
							SystemJs.httpUnit.uniToast(res)
						}
					})
				});
				// #endif
			}
		}
	}
</script>

<style>
	.chartsItem {
		margin: 10px;
		border-radius: 10px;
		box-shadow: 0 1px 6px #e7e7e7;
		background-color: #ffffff;
	}

	.content {
		display: flex;
		flex-direction: column;
		flex: 1;
	}

	.charts-box {
		width: 100%;
		height: 300px;
	}
</style>
